Para resolver a problemática 8, vamos criar um script JavaScript que solicita ao usuário uma lista de salários e calcula a soma total desses salários. A solução será baseada na lógica de programação já utilizada em desafios anteriores, com algumas adaptações para atender às especificações deste novo desafio.
Vamos criar uma interface simples com um campo de entrada para a lista de salários e um botão para acionar o cálculo. O resultado será exibido em um parágrafo.
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Cálculo de Salário Total</title>
<link rel="stylesheet" href="/common/css/style.css" />
</head>
<body>
<h1>Cálculo de Salário Total</h1>
<p>Por favor, informe os salários separados por vírgula:</p>
<input type="text" id="salarios" required placeholder="10, 7, 20, -30">
<button class="btn btn-primary btn-block" onclick="calcularSalarioTotal()">Calcular Salário Total</button>
<section>
<div class="terminal-card" id="card">
<header>Resultado</header>
<div id="resultado" style="padding:2rem">
Aqui será exibido o salário total da folha de pagamento
</div>
</div>
</section>
<script> </script>
</body>
</html>
A lógica do JavaScript está implementada na tag script
no próprio HTML. A função calcularSalarioTotal()
é chamada quando o usuário clica no botão. Ela pega a string de salários, divide-a em um array de strings, converte cada string em um número e, em seguida, usa o método reduce
para somar todos os salários. O resultado é exibido no parágrafo com o ID resultado
.
function calcularSalarioTotal() {
const salariosString = document.getElementById('salarios').value;
const salarios = salariosString.split(',').map(salario => parseFloat(salario.trim()));
const resultadoContainer = document.getElementById('resultado');
const salarioTotal = salarios.reduce((total, salario) => total + salario, 0);
resultadoContainer.textContent = `O salário total da folha de pagamento é: ${salarioTotal.toFixed(2)}`;
}
Essa solução é simples e direta, utilizando HTML para a estrutura, CSS para estilização e JavaScript para a lógica de programação.
Para visualizar em tela cheia clique aqui: ./index-simples.html
Para melhorar essa resolução sem perder a simplicidade,
<h1>Cálculo de Salário Total</h1>
- <p>Por favor, informe os salários separados por vírgula:</p>
+ <p>Por favor, informe os salários separados por vírgula e utilizando ponto (.) como separador de cacas decimais:</p>
<input type="text" id="salarios" required placeholder="10, 7, 20, -30">
function calcularSalarioTotal() {
const salariosString = document.getElementById('salarios').value;
const salarios = salariosString.split(',').map(salario => parseFloat(salario.trim()));
const resultadoContainer = document.getElementById('resultado');
const salarioTotal = salarios.reduce((total, salario) => total + salario, 0);
if (Number.isNaN(salarioTotal)){
resultadoContainer.classList = ["btn-error"]
resultadoContainer.innerHTML = `
<p>Erro, favor informe somente números, separados por virgula.</p>
<p>É aceito sinal de negativo "-"</p>
<p>Exemplo: 10, 7, 20, -30</p>
`;
return;
}
const salario_em_brl = "R$ "+salarioTotal.toFixed(2).replace(".", ",")
resultadoContainer.classList = []
resultadoContainer.innerHTML = `<p> O salário total da folha de pagamento é: <b>${salario_em_brl}</b></p>`;
resultadoContainer.innerHTML += `<p> Calculo: ${salarios.join(" + ")} = ${salario_em_brl} </p>`;
}
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Cálculo de Salário Total</title>
<link rel="stylesheet" href="/common/css/style.css" />
</head>
<body>
<h1>Cálculo de Salário Total</h1>
<p>Por favor, informe os salários separados por vírgula e utilizando ponto (.) como separador de cacas decimais:</p>
<input type="text" id="salarios" required placeholder="10, 7, 20, -30">
<button class="btn btn-primary btn-block" onclick="calcularSalarioTotal()">Calcular Salário Total</button>
<section>
<div class="terminal-card" id="card">
<header>Resultado</header>
<div id="resultado" style="padding:2rem">
Aqui será exibido o salário total da folha de pagamento
</div>
</div>
</section>
<script>
function calcularSalarioTotal() {
const salariosString = document.getElementById('salarios').value;
const salarios = salariosString.split(',').map(salario => parseFloat(salario.trim()));
const resultadoContainer = document.getElementById('resultado');
const salarioTotal = salarios.reduce((total, salario) => total + salario, 0);
if (Number.isNaN(salarioTotal)){
resultadoContainer.classList = ["btn-error"]
resultadoContainer.innerHTML = ``;
return;
}
const salario_em_brl = "R$ "+salarioTotal.toFixed(2).replace(".", ",")
resultadoContainer.classList = []
resultadoContainer.innerHTML = ``;
resultadoContainer.innerHTML += ``;
}
</script>
</body>
</html>
Para visualizar em tela cheia clique aqui: ./index.html